package com.ruoyi.project.mahjong.service;

import java.util.List;

import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.mahjong.domain.TOpenTable;
import com.ruoyi.project.mahjong.domain.TRoom;
import com.ruoyi.project.mahjong.domain.dto.*;
import com.ruoyi.project.mahjong.domain.vo.DeskVo;
import com.ruoyi.project.mahjong.domain.vo.TOpenTableVo;

/**
 * 新开桌Service接口
 *
 * @author ruoyi
 * @date 2023-10-07
 */
public interface ITOpenTableService
{
    /**
     * 查询新开桌
     *
     * @param id 新开桌ID
     * @return 新开桌
     */
    public TOpenTable selectTOpenTableById(Long id);

    /**
     * 查询新开桌列表
     *
     * @param tOpenTable 新开桌
     * @return 新开桌集合
     */
    public List<TOpenTable> selectTOpenTableList(TOpenTable tOpenTable);

    /**
     * 新增新开桌
     *
     * @param tOpenTable 新开桌
     * @return 结果
     */
    public int insertTOpenTable(TOpenTable tOpenTable);

    /**
     * 修改新开桌
     *
     * @param tOpenTable 新开桌
     * @return 结果
     */
    public int updateTOpenTable(TOpenTable tOpenTable);

    /**
     * 批量删除新开桌
     *
     * @param ids 需要删除的新开桌ID
     * @return 结果
     */
    public int deleteTOpenTableByIds(Long[] ids);

    /**
     * 删除新开桌信息
     *
     * @param id 新开桌ID
     * @return 结果
     */
    public int deleteTOpenTableById(Long id);
    /**
     *点击开桌需要的数据
     */
    OpenTableDto getOpenVo(Long shopId,String roomId);

    List <TRoom> getIndexDataVo(Long shopId);

    String insertTOpenTableAndIdInfo(OpenTableIng openTableIng);

    /**
     * 通用查询开桌

     * @return
     */
    TOpenTableVo getOpenTableInfo( String orderNumber);

    /**
     * 停止计费
     * @return
     */
    void tableStopBilling(String orderNumber);

    String overOpenTable(OverOpenTableDto overOpenTableDto);

    /**
     * 根据订单编号查询开桌中信息
     * @param orderNumber
     * @return
     */
    String cancelOpenTable(String orderNumber);

    String changeTable(ChangeTableDto dto);

    void changeTableTime(DeskTimeDto deskTimeDto);

    Integer stopTableTime(String orderNumber,String stopStatus);

    String addPerson(String orderNumber, Long id, Long shopId,Long userId);

    Integer oneOverTable(OneOverTableDto overTableDto);

    Integer updateRemark(String orderNumber, String remark);

    void addMember(Long memberId, String orderNumber);

    void deleteByMemberId(DeskMemberDto deskMemberDto);


    List<DeskVo> selectTabels(TOpenTable table1);

    void changeRemark(ChangDto changDto);

    void checkout(Long memberId, Long deskId);

    void checkoutAll(Long deskId);

    void suspend(SuspendDto suspendDto);

    AjaxResult coverDesk(Long deskIngId);

    void tmpStopDesk(String orderSn);

    Long updateStatus(String orderSn);
//    Integer restoreStopTime(String orderNumber);
}
